// 1904. [字符串]屏蔽敏感词 https://oj.rnd.huawei.com/problems/1904/details
//给定敏感词，按如下规则对待检查字符串进行匹配和替换：敏感词中的各字符顺序地出现在待检查字符串中，
// 【第一个字符和最后一个字符之间的其它字符个数小于敏感词长度连同其它字符一起替换为星号*】
// 如：敏感词 135
// 可匹配字符串1?3?5、1??35，不匹配1?3??5。支持贪婪匹配，即每次从左到右扫描，
// 一旦遇到可匹配的情况就开始进行匹配，且匹配尽可能长的字符，
// 例如：敏感词为 ab 时，字符串 abbc 应该替换成 *c ，而不是 *bc
// 敏感词为 abc 时，字符串 aabcbc 应该替换成 *bc，而不是 a* （遇到首个 a
// 时就开始进行匹配）
// 支持全量匹配，即：有多处符合匹配规则时，则需要全部进行匹配和替换。请输出屏蔽后的字符串。
// 输入第一行字符串，表示待检查字符串，仅含英文字母和数字，长度范围：[2,20]。
// 第二行字符串，表示敏感词，长度范围：[2,20]。
// 输出屏蔽后的字符串
// 输入ABCdfgABC
// ABC
// 输出*dfg*
// 注意全量匹配，待检查字符串中有两处符合匹配规则，首个ABC以及最后一个ABC，都替换为*后，屏蔽后输出为
// *dfg* 。 输入abbdefghjjk bdfhj 输出a*k
// 注意贪婪匹配：从第二个字符b开始匹配到第十个字符j，中间干扰字符个数为4（含
// begj），小于敏感词的长度5，因此屏蔽后输出为：a*k 输入abbbbbcde abc
// 输出abbbbbcde
// a 和 c之间的字符串 bbbbb 长度超过了敏感词的长度，因此无屏蔽。
#include <iostream>
#include <string>
using namespace std;
class Solution {
 public:
  bool checkMatch(const string& sensitiveStr, const string& checkSubstr) {
    if (sensitiveStr.length() < 1) {
      return false;
    }
    // 检查首位符合敏感词
    if (sensitiveStr[0] != checkSubstr[0] ||
        sensitiveStr[sensitiveStr.length() - 1] !=
            checkSubstr[checkSubstr.length() - 1]) {
      return false;
    }
    // 检查匹配的字符数量
    int j = 0;
    for (int i = 0; i < checkSubstr.length(); i++) {
      if (checkSubstr[i] == sensitiveStr[j]) {
        j++;
      }
    }
    if (j == sensitiveStr.length()) {
      return true;
    }
    return false;
  }

 public:
  // 待实现函数，在此函数中填入答题代码;
  string GetMaskedStr(const string& checkedStr, const string& sensitiveStr) {
    string result = checkedStr;
    int minlen_match = sensitiveStr.length();
    int maxlen_match = minlen_match * 2 - 1;
    for (int chkStart = 0; chkStart < result.length(); chkStart++) {
      // 尽量长匹配，贪婪匹配
      for (int checklen = maxlen_match; checklen >= minlen_match; checklen--) {
        string checkSubstr = result.substr(chkStart, checklen);
        bool bMatch = checkMatch(sensitiveStr, checkSubstr);
        if (bMatch) {
          result.replace(chkStart, checklen, string(1, '*'));
          break;
        }
      }
    }
    return result;
  }
};
inline string ReadLine() {
  string line;
  getline(cin, line);
  return line;
}
int main() {
  string checkedStr = ReadLine();
  string sensitiveStr = ReadLine();
  Solution solu;
  string result = solu.GetMaskedStr(checkedStr, sensitiveStr);
  cout << result;
  return 0;
}